Telegram Group & Telegram Channel
🧵 Сегодня покажу вам простой, но полезный приём для оптимизации копирования std::vector.

Часто вижу такую конструкцию:


std::vector<int> result;
result = getVector();


Если getVector() возвращает временный объект, то копирование можно избежать, используя std::move или Return Value Optimization (RVO).

Но вот интересное: если вы точно знаете, что копия не нужна, используйте std::vector::swap с временным объектом:


std::vector<int> result;
std::vector<int> tmp = getVector();
result.swap(tmp);


Почему это может быть лучше?
🔸 Быстрая реализация через указатели.
🔸 Не вызывает лишние аллокаторы.
🔸 Не зависит от move конструктора.
🔸 Гарантированно не бросает исключений, если swap noexcept (что обычно так).

В новых компиляторах result = std::move(tmp) даст тот же эффект, но swap — это старый добрый способ, который работает предсказуемо.

🧠 Подумайте, где можно применить это у себя — особенно если работаете с большими контейнерами.

➡️ @cpp_geek



tg-me.com/cpp_geek/312
Create:
Last Update:

🧵 Сегодня покажу вам простой, но полезный приём для оптимизации копирования std::vector.

Часто вижу такую конструкцию:


std::vector<int> result;
result = getVector();


Если getVector() возвращает временный объект, то копирование можно избежать, используя std::move или Return Value Optimization (RVO).

Но вот интересное: если вы точно знаете, что копия не нужна, используйте std::vector::swap с временным объектом:


std::vector<int> result;
std::vector<int> tmp = getVector();
result.swap(tmp);


Почему это может быть лучше?
🔸 Быстрая реализация через указатели.
🔸 Не вызывает лишние аллокаторы.
🔸 Не зависит от move конструктора.
🔸 Гарантированно не бросает исключений, если swap noexcept (что обычно так).

В новых компиляторах result = std::move(tmp) даст тот же эффект, но swap — это старый добрый способ, который работает предсказуемо.

🧠 Подумайте, где можно применить это у себя — особенно если работаете с большими контейнерами.

➡️ @cpp_geek

BY C++ geek


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/cpp_geek/312

View MORE
Open in Telegram


C geek Telegram | DID YOU KNOW?

Date: |

Pinterest (PINS) Stock Sinks As Market Gains

Pinterest (PINS) closed at $71.75 in the latest trading session, marking a -0.18% move from the prior day. This change lagged the S&P 500's daily gain of 0.1%. Meanwhile, the Dow gained 0.9%, and the Nasdaq, a tech-heavy index, lost 0.59%. Heading into today, shares of the digital pinboard and shopping tool company had lost 17.41% over the past month, lagging the Computer and Technology sector's loss of 5.38% and the S&P 500's gain of 0.71% in that time. Investors will be hoping for strength from PINS as it approaches its next earnings release. The company is expected to report EPS of $0.07, up 170% from the prior-year quarter. Our most recent consensus estimate is calling for quarterly revenue of $467.87 million, up 72.05% from the year-ago period.

The lead from Wall Street offers little clarity as the major averages opened lower on Friday and then bounced back and forth across the unchanged line, finally finishing mixed and little changed.The Dow added 33.18 points or 0.10 percent to finish at 34,798.00, while the NASDAQ eased 4.54 points or 0.03 percent to close at 15,047.70 and the S&P 500 rose 6.50 points or 0.15 percent to end at 4,455.48. For the week, the Dow rose 0.6 percent, the NASDAQ added 0.1 percent and the S&P gained 0.5 percent.The lackluster performance on Wall Street came on uncertainty about the outlook for the markets following recent volatility.

C geek from sg


Telegram C++ geek
FROM USA